/*
 * @Description:
 * @Version: 2.0
 * @Autor: wiz
 * @Date: 2023-06-27 14:23:28
 * @LastEditors: swc
 * @LastEditTime: 2024-09-02 18:16:16
 */
import { T_srv, Tsrv, ifs, ts, vue } from '@/services';

// vue组件作为节点处理包

import { Clipboard } from '@antv/x6-plugin-clipboard';
import { Dnd } from '@antv/x6-plugin-dnd';
import { Export } from '@antv/x6-plugin-export';
import { History } from '@antv/x6-plugin-history';
import { Keyboard } from '@antv/x6-plugin-keyboard';
import { MiniMap } from '@antv/x6-plugin-minimap';
import { Scroller } from '@antv/x6-plugin-scroller';
import { Selection } from '@antv/x6-plugin-selection';
import { Snapline } from '@antv/x6-plugin-snapline';
import { Stencil } from '@antv/x6-plugin-stencil';
import { Transform } from '@antv/x6-plugin-transform';
import { register as regVueNode } from '@antv/x6-vue-shape';

import { N_cFlowchart, N_oContextMenu, N_oSimpleToolbar } from '@/types';
import { I_cmd, T_cmd } from './command';
import custBaseReg from './custBaseReg';

// 工具栏
const toolbarConf = (): Array<N_oSimpleToolbar.I_Conf> => {
  return [
    {
      key: 'open',
      type: 'button',
      class: 'wy-wenjianjia4',
      title: '打开',
      // 按下的样式 单锁开关按扭样式控制 默认为false 根据需要在逻辑中控制为true改为按样式为接下状态
      isOpen: false,
      // 默认可用
      disabled: false,
      // 分格线
      separator: false,
      isHide: false
    },
    {
      key: 'new',
      type: 'button',
      class: 'wy-rule-new',
      title: '新增',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: false,
      separator: false,
      isHide: false
    },
    {
      key: 'edit',
      type: 'button',
      class: 'wy-rule-edit',
      title: '编辑',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: true,
      separator: false,
      isHide: false
    },
    {
      key: 'cancelEdit',
      type: 'button',
      class: 'wy-yiquxiao',
      title: '取消编辑',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: true,
      separator: false,
      isHide: false
    },
    {
      key: 'delete',
      type: 'button',
      class: 'wy-delete',
      title: '删除',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: true,
      separator: false,
      isHide: false
    },
    {
      key: 'save',
      type: 'button',
      class: 'wy-baocun41',
      title: '保存',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: true,
      separator: false,
      isHide: false
    },
    {
      key: 'saveAs',
      type: 'button',
      class: 'wy-save-as',
      title: '另存为',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: true,
      separator: true,
      isHide: false
    },
    {
      key: 'copy',
      type: 'button',
      class: 'wy-fuzhi',
      title: '复制',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: true,
      separator: false,
      isHide: false
    },
    {
      key: 'paste',
      type: 'button',
      class: 'wy-zhantiepeizhi',
      title: '粘贴',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: true,
      separator: false,
      isHide: false
    },

    {
      key: 'undo',
      type: 'button',
      // 图样式
      class: 'wy-undo',
      title: '撤销',
      // 无效？
      disabled: true,
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      // 下级分格线
      separator: false,
      isHide: false
    },
    {
      key: 'redo',
      type: 'button',
      class: 'wy-redo',
      title: '重做',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: true,
      separator: false,
      isHide: false
    },
    {
      key: 'zoomIn',
      type: 'button',
      class: 'wy-zoom',
      title: '放大',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: false,
      separator: true,
      isHide: false
    },
    {
      key: 'zoomOut',
      type: 'button',
      class: 'wy-zoom-out',
      title: '缩小',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: false,
      separator: false,
      isHide: false
    },
    {
      key: 'autoZoom',
      type: 'button',
      class: 'wy-shiheyemian',
      title: '适应画布',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: false,
      separator: false,
      isHide: false
    },
    {
      key: 'actualSize',
      type: 'button',
      class: 'wy-actual_size',
      title: '实际尺寸',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: false,
      separator: true,
      isHide: false
    },
    // {
    //   key: 'levelDown',
    //   type: 'button',
    //   class: 'wy-cengjixianxia',
    //   title: '层级后置',
    //   // 按下的样式 单锁开关按扭样式控制
    //   isOpen: false,
    //   disabled: true,
    //   separator: false,
    // isHide: false
    // },
    // {
    //   key: 'livelUp',
    //   type: 'button',
    //   class: 'wy-cengjixianshang',
    //   title: '层级前置',
    //   // 按下的样式 单锁开关按扭样式控制
    //   isOpen: false,
    //   disabled: true,
    //   separator: true,
    // isHide: false
    // },
    // {
    //   key: "multipleSelect",
    //   type: "button",
    //   class: "wy-xuanzeselection7",
    //   title: "多选",
    //   // 按下的样式 单锁开关按扭样式控制
    //   isOpen: false,
    //   disabled: false,
    //   separator: false,
    // isHide: false
    // },
    {
      key: 'grid',
      type: 'button',
      class: 'wy-wangge',
      title: '网格',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: false,
      separator: false,
      isHide: false
    },
    {
      key: 'align',
      type: 'button',
      class: 'wy-pailiexiaduiqi',
      title: '对齐线',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: true,
      disabled: false,
      separator: false,
      isHide: false
    },
    {
      key: 'nav',
      type: 'button',
      class: 'wy-wizard',
      title: '地图',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: true,
      disabled: false,
      separator: true,
      isHide: false
    },
    {
      key: 'layout',
      type: 'button',
      class: 'wy-paiban',
      title: '排版',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: false,
      separator: true,
      isHide: false
    },

    // {
    //   key: 'audit',
    //   type: 'button',
    //   class: 'wy-shenhe',
    //   title: '审核',
    //   // 按下的样式 单锁开关按扭样式控制
    //   isOpen: false,
    //   disabled: true,
    //   separator: false,
    //   isHide: false
    // },
    // {
    //   key: 'unAudit',
    //   type: 'button',
    //   class: 'wy-fanshenhe1',
    //   title: '反审核',
    //   // 按下的样式 单锁开关按扭样式控制
    //   isOpen: false,
    //   disabled: true,
    //   separator: false,
    //   isHide: false
    // },
    {
      key: 'fullScreen',
      type: 'button',
      class: 'wy-ios-expand', // ios-contract
      title: '全屏',
      // 按下的样式 单锁开关按扭样式控制
      isOpen: false,
      disabled: false,
      separator: false,
      isHide: false
    }
  ];
};
// 默认菜单
const defaultContextMenuItem = (): N_oContextMenu.I_menuItem[] => {
  return [
    {
      name: 'default:remove',
      title: Tsrv.getI18nBySrv('删除'),
      icon: 'wy-icon wy-huishouzhan1',
      isShow: true,
      disabled: false,
      children: []
    }
  ];
};
const defaultEvent = (): Array<N_cFlowchart.EVENTS> => [
  N_cFlowchart.EVENTS.NODE_CLICK,
  N_cFlowchart.EVENTS.NODE_CONTEXTMENU,
  N_cFlowchart.EVENTS.EDGE_CLICK,
  N_cFlowchart.EVENTS.EDGE_CONTEXTMENU,
  N_cFlowchart.EVENTS.NODE_MOUSEENTER,
  N_cFlowchart.EVENTS.NODE_MOUSELEAVE,
  N_cFlowchart.EVENTS.BLANK_CLICK
];

export {
  Clipboard,
  Dnd,
  Export,
  History,
  I_cmd,
  Keyboard,
  MiniMap,
  N_cFlowchart,
  N_oContextMenu,
  N_oSimpleToolbar,
  Scroller,
  Selection,
  Snapline,
  Stencil,
  T_cmd,
  T_srv,
  Transform,
  Tsrv,
  custBaseReg,
  defaultContextMenuItem,
  defaultEvent,
  ifs,
  regVueNode,
  toolbarConf,
  ts,
  vue
};
